<?php

class DefaultController extends Controller
{
	public $layout='application.modules.admin.views.layouts.default';
	
	/**
	 * @return array action filters
	 */
	public function filters()
	{
		return array(
			'accessControl', // perform access control for CRUD operations
		);
	}

	/**
	 * Specifies the access control rules.
	 * This method is used by the 'accessControl' filter.
	 * @return array access control rules
	 */
	public function accessRules()
	{
		return array(
			array('allow',  // allow all users to perform 'index' and 'view' actions
				'actions'=>array('index','view'),
				'users'=>array('*'),
			),
			array('allow', // allow authenticated user to perform 'create' and 'update' actions
				'actions'=>array('index','statistics','menu','checkadditem'),
				'users'=>array('@'),
			),
			array('allow', // allow admin user to perform 'admin' and 'delete' actions
				'actions'=>array('admin','delete'),
				'users'=>array('admin'),
			),
			array('deny',  // deny all users
				'users'=>array('*'),
			),
		);
	}
	
	public function actionIndex()
	{
		
// 		$catelist = Category::model()->findAll(array(
// 			'condition'=>'cate_type = '.Category::CATEGORY_NEWS,
// 			'order'=>'cate_id ASC ,cate_pid DESC',
// 		));
		 
// 		$catelist = Category::model()->getChildrenObject($catelist);
		
		$data = Article::model()->getAllAchiveInfoSlice(5);
		
		
		$criteria = new CDbCriteria(array(	
//			'distinct'=>true,
//			'group'=>'com_aid,com_proid',
//			'condition'=>'com_status != '.Comment::COMMENT_TRASH,
			'limit' => 5,
			'order'=>'com_id DESC'
		));
//		UtilTools::dump($criteria);
		$comments=Comment::model()->findAll($criteria);

//		$start = microtime(true);
//		
//		$cache = Yii::app()->fileCache;
//	
//		if($cache->get('soon') == false)
//		{
//			echo "OK";
//			//System Statistics
//			$path = "./"; 
//			$ar = UtilTools::getDirectorySize($path);
//			$upload = UtilTools::getDirectorySize('./public/upload');
//			
//			
//			//Content Statistics
//			$article = Article::model()->getNewsStatistics(); 
//			$page = Article::model()->getNewsStatistics(Category::CONTENT_PAGE);
//			
//			
//			$saveData = array(
//				'space' => $ar,
//				'upload' => $upload,
//				'article' => $article,
//				'page' => $page
//			);
//			
//			$statistics = $saveData;
//			$cache->set('soon',json_decode(json_encode($saveData)),3600,new CDirectoryCacheDependency($path));
//		}
//		
//		$statistics = $cache->get('soon');
//		
//		$end = microtime(true);
//		
//		echo $end-$start;


		$statistics = array(
			'upload'=>UtilTools::getDirectorySize('./public/upload'),
			'video'=>File::model()->fileStatisticsByType(Category::CONTENT_VIDEO),
			'gallery'=>File::model()->fileStatisticsByType(Category::CONTENT_GALLERY),
			'audio'=>File::model()->fileStatisticsByType(Category::CONTENT_AUDIO),
			'article'=>Article::model()->getNewsStatistics(),
			'page'=>Article::model()->getNewsStatistics(Category::CONTENT_PAGE),
					
		);
		
		$statistics = json_decode(json_encode($statistics));


		
		$this->render('index',array(
			'model'=>$model,
			'statistics'=>$statistics,
// 			'catelist'=>$catelist,
			'achive'=>$data,
			'comments' => $comments
		));
	}
	
	public function actionStatistics()
	{
		//目录  
//$path   =   './test_dir/ ';
////显示文件列表  
//print_r(get_file_list($path)). ' <br> ';  
////显示文件大小  
//echo   dir_size($path). ' <br> ';    
////显示转换过单位的大小
//echo   setupSize(dir_size($path)); 



		
		$statistics = array(
			'space'=>File::model()->fileStatistic('./'),

		);
		
		UtilTools::dump($statistics);

		
	}
	
    public function actionMenu()
    {

        $criteria = new CDbCriteria(
            array(
//                'condition'=>'cate_type=:cate_type',
                'order'=>'cate_type ASC,cate_pid ASC,cate_order DESC',
                'params'=>array(
//                    ':cate_type'=>Category::CATEGORY_NEWS
                )
            )
        );

		$dataProvider=new CActiveDataProvider('Category',array(
            'criteria'=>$criteria
        ));
	
		$model=new Category;

		// Uncomment the following line if AJAX validation is needed
// 		$this->performAjaxValidation($model);
		

 		if(isset($_POST['Category']))
		{
			$count = Category::model()->count('cate_name = :cate_name',array(':cate_name'=>$_POST['Category']['cate_name']));
            
            if($count > 0)
            {
                die("exists");
            }
            
            $model->attributes=$_POST['Category'];    

//            var_dump($model->attributes);
//            die();
		
//            try {
//            	$model->save();
//            }
//            catch (CException $e)
//            {
//            	$e->getMessage();
//            }
			if($model->save()){
				die("ok");
			}else{
				die("fail");
			}
			
		}

		$this->render('menu',array(
			'model'=>$model,
			'dataProvider'=>$dataProvider
		));
    }	
//	public function actionMenu()
//	{
//		
//		
//
//	    $menu=new MenuForm;
//		
//
//	    
//	    // uncomment the following code to enable ajax-based validation
////	    $this->performAjaxValidation($menu);
//	    
////	    if(isset($_POST['ajax']) && $_POST['ajax']==='menu-form-_menuform-form')
////	    {
////	        echo CActiveForm::validate($model);
////	        Yii::app()->end();
////	    }
//	    $menuManualModel = $menu->loadManualMenus();
//	    $menuManualArray = $menu->getMenuArray($menuManualModel);
//	    
////	    UtilTools::dump($menuManualArray);
//	
//	    if(isset($_POST['MenuForm']))
//	    {
//	        $menu->attributes=$_POST['MenuForm'];
//	        if($menu->validate())
//	        {
//
//	        	$menus = array_push($menuManualArray, $menu->attributes);
//	        	
//	        	UtilTools::dump($menus);
//	        	die();
//	        	
//	        	$menuManualModel->set_value = serialize($menus);
//	        	
//	        	if($menuManualModel->save())
//	        		die('ok');
//	        	
//	            // form inputs are valid, do something here
//	            return;
//	        }
//	    }
//	    
//	    $menuCategoryModel = $menu->loadModel();
//	    $menuCategoryArray = $menu->getMenuArray($menuCategoryModel);
//	    
////	    UtilTools::dump($menuCategoryArray);
//	    
//	    $dataProvider = array();
//	    
//
//	   	if($menuManualModel)
//	   		$dataProvider = $menuManualArray;
//	   	if($menuCategoryModel)
//	   		$dataProvider = $menuCategoryArray;	   		    
//	    if($menuCategoryArray && $menuManualArray)
//	    	$dataProvider = array_merge($menuCategoryArray,$menuManualArray);
//	    
//	    
//	    $arr1 = array(array('db'=>'mysql'),array('db'=>'blueidea'));
//	    $arr2 = array(array('db'=>'163.com'));
//	    
////	    UtilTools::dump(array_merge($arr1,$arr2));
////	    UtilTools::dump($dataProvider);
//	    
//	    $roots = Category::model()->findAll(array(
//	    	'condition' => 'cate_pid = :cate_pid',
//	    	'params' => array(
//	    		':cate_pid' => 0
//	    	)
//	    ));
//	    		
//		$this->render('menu',array(
//			'model' => $menu,
//			'roots' => $roots,
//			'dataProvider' => $dataProvider
//		));
//	}

	public function actionChildren()
	{
		$menu = new MenuForm();
		UtilTools::dump($menu->getMenuModelArray());
	}

	
//	public function actionImportMenus()
//	{
//		$menuArr = array();
//		$ids = explode('-', $_POST['ids']);
//		
//		UtilTools::dump($_POST);
//		UtilTools::dump($ids);
//		
//		foreach ($ids as $id)
//		{
//			
//			$model = Category::model()->findByPk($id);
//			if($model)
//			{
//				UtilTools::dump($model->attributes);
//				$batchModel = Category::model()->findAll(array(
//					'condition' => 'cate_type = :cate_type',
//					'params' => array(
//						':cate_type' => $model->cate_type
//					)
//				));
//				foreach ($batchModel as $item)
//				{
//					array_push($menuArr, $this->exchangeData($item));
//					
////					$menuArr[] = $this->exchangeData($item);
//				}	
//				
//				
//			}
//		}
//		$menu = new MenuForm();
////		$menu->getChildrenArray($menuArr);
////		UtilTools::dump($need);
//
//		$model = $menu->loadModel();
//		
//		$model->set_value = serialize($menuArr);
//		
//		if($model->save())
//			die("ok");	
//	}
//	
//	public function exchangeData($cate)
//	{
//		return array(
//			'id' => $cate->cate_id,
//			'name' => $cate->cate_name,
//			'link' => $cate->cate_link,
//			'cname' => $cate->cate_cname,
//			'description' => $cate->cate_des,
//			'order' => $cate->cate_order,
//			'type' => $cate->cate_type,
//			'pid' => $cate->cate_pid,
////			'index' => $cate->cate_pid==0?$cate->cate->cate_pid:''
//		);
//	}
//	
//	public function actionCheckAddItem()
//	{
//
//		if(isset($_POST['id']))
//		{
//			$id = array();
//			
//			$menu =  new MenuForm();
//			
//			$model = $menu->loadModel();
//			
//			$menuArr = $menu->getMenuArray($model);
//			
//			foreach ($menuArr as $menuItem)
//			{
//				$id[] = $menuItem['cate_id'];
//			}	
//
//			if(in_array($_POST['id'], $id))
//				echo "ok";
//			
//		}	
//		
//	}
//	
//	public function actionMenuList()
//	{
//		$this->blackLayout();
//
//			
//		
//		$model = new MenuForm();
//		
//		$menuArr = $model->loadModel();
//		
//		$model = $model->getChildrenArray($menuArr);
//		$this->render('menulist',array(
//			'model'=>$model
//		));
//	}
	
	protected function blackLayout()
	{
		return $this->layout='application.modules.admin.views.layouts.blank';
	}
	
	protected function baseLayout()
	{
		return $this->layout='application.modules.admin.views.layouts.base';
	}
}